Host processor systems may store and retrieve data using a storage device containing a plurality of host interface units (I/O modules), disk drives, and disk interface units (disk adapters). The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels to the storage device and the storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical disk units. The logical disk units may or may not correspond to any one of the actual disk drives. Allowing multiple host systems to access the single storage device unit allows the host systems to share data stored therein.
In some cases, global volatile memory may be used as global cache to temporarily store data that has been accessed. The global volatile memory is usually faster than the corresponding non-volatile memory, such as disk drives. When a host system reads data that is stored on a disk drive, the data is initially fetched from the disk drive and loaded into the global cache. Subsequent accesses are performed by reading the global cache without needing to access the disk drive. Eventually, when the data is no longer accessed, it may be removed from the global cache to make room for more active data. If the data is modified (written) while in the global cache, then the cache version of the data is written back to the disk drive.
A drawback to global cache is that, since it is being accessed by multiple processors (interface units) at the same time, it is necessary to provide additional mechanisms to prevent more than one processor from writing to the same data at the same time and to alert processors whenever data changes to prevent using data that is not current. In addition to the overhead associated with the additional mechanisms, there could also be delays when, for example, a first processor waits for a second processor to relinquish a lock on specific data. Data lockouts may occur even in situations where different processors are accessing unrelated data.
Accordingly, it is desirable to provide a system that addresses drawbacks associated with global cache.